package npap.cater.unr.edu.client.scaffold.place;

import npap.cater.unr.edu.client.managed.request.ApplicationRequestFactory;
import npap.cater.unr.edu.client.scaffold.place.customized.AppPlace;
import npap.cater.unr.edu.client.scaffold.place.customized.ProjectListPlace;

import com.google.gwt.place.shared.PlaceTokenizer;
import com.google.inject.Inject;

public class PlaceHistoryFactory {
	/**
	 * @uml.property  name="proxyListPlaceTokenizer"
	 * @uml.associationEnd  multiplicity="(1 1)"
	 */
	private final ProxyListPlace.Tokenizer proxyListPlaceTokenizer;
	/**
	 * @uml.property  name="proxyPlaceTokenizer"
	 * @uml.associationEnd  multiplicity="(1 1)"
	 */
	private final ProxyPlace.Tokenizer proxyPlaceTokenizer;
	/**
	 * @uml.property  name="projectListPlaceTokenizer"
	 * @uml.associationEnd  multiplicity="(1 1)"
	 */
	private final ProjectListPlace.Tokenizer projectListPlaceTokenizer;
	/**
	 * @uml.property  name="appPlaceTokenizer"
	 * @uml.associationEnd  multiplicity="(1 1)"
	 */
	private final AppPlace.Tokenizer appPlaceTokenizer;

	@Inject
	public PlaceHistoryFactory(ApplicationRequestFactory requestFactory) {
		this.proxyListPlaceTokenizer = new ProxyListPlace.Tokenizer(requestFactory);
		this.proxyPlaceTokenizer = new ProxyPlace.Tokenizer(requestFactory);
		this.projectListPlaceTokenizer=new ProjectListPlace.Tokenizer(requestFactory);
		this.appPlaceTokenizer=new AppPlace.Tokenizer(requestFactory);
	}

	public PlaceTokenizer<ProxyListPlace> getProxyListPlaceTokenizer() {
		return proxyListPlaceTokenizer;
	}

	public PlaceTokenizer<ProxyPlace> getProxyPlaceTokenizer() {
		return proxyPlaceTokenizer;
	}
	
	public PlaceTokenizer<ProjectListPlace> getProjectListPlaceTokenizer() {
		return projectListPlaceTokenizer;
	}

	public PlaceTokenizer<AppPlace> getAppPlaceTokenizer() {
		return appPlaceTokenizer;
	}
}
